package com.gin.kotlin.no_gay_alliance.enums

import com.gin.kotlin.no_gay_alliance.model.AttachmentModel
import com.gin.kotlin.no_gay_alliance.model.emoji.GenericEmojiModel
import com.gin.nga.response.post.UploadBody
import com.gin.nga.response.topic.TopicInfo
import com.gin.nga.response.user.TinyUserInfo

enum class HandlerMessageWhat {
    /**
     * 账号列表需要刷新
     */
    ACCOUNT_LIST_REFRESH,

    /**
     * 页码信息更新，arg1 = 当前页 ，arg2 = 最大页
     */
    PAGE_UPDATED,

    /**
     * 总楼层数和总页数更新, arg1 = 总楼层数, 总页数
     */
    TOTAL_UPDATED,

    /**
     * 更新当前版面信息, payload = 数据
     */
    CURRENT_FORUM_UPDATE,

    /**
     * 发帖成功, payload = [com.gin.kotlin.no_gay_alliance.activity.PostActivity.PostResult]
     */
    POST_SUCCESS,

    /**
     * 表情图的点击事件，payload = [GenericEmojiModel]
     */
    ON_CLICK_EMOJI,

    /**
     * 同步上传附件列表，payload = List<[UploadBody]>
     */
    SYNC_UPLOAD_BODY,

    /**
     * 点击刚上传的附件 或 已上传的附件，payload = [UploadBody] 或 [AttachmentModel]
     */
    ON_CLICK_ATTACHMENT,

    /**
     * 删除刚上传的附件 或 已上传的附件，payload = [UploadBody] 或 [AttachmentModel]
     */
    ON_DELETED_ATTACHMENT,

    /**
     * 点击主题分类，payload = String
     */
    ON_CLICK_TOPIC_KEY,

    /**
     * 被屏蔽的主题，payload = List<[TopicInfo]>
     */
    BLOCKED_TOPICS,

    /**
     * 私信的参与用户, payload = List<[TinyUserInfo]>
     */
    PRIVATE_MESSAGE_USER,

    /**
     * 回复界面，添加文字到正文框中， payload = [com.gin.kotlin.no_gay_alliance.model.PostAddTextModel]
     */
    POST_ADD_TEXT_TO_CONTENT,

    /**
     * 回复列表页面，跳转到书签，payload = [com.gin.kotlin.no_gay_alliance.database.entity.TopicBookmark]
     */
    PAGE_TO_TOPIC_BOOKMARK,
    ;

    companion object {
        const val KEY_RETWEET_TYPE = "ID"
    }
}